【MySQL】バイナリーデータ型(TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB)

【MySQL】バイナリーデータ型(TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB)

MySQLのバイナリデータ型について解説します。

検証環境

バイナリデータ型

バイナリデータ型は画像ファイルなどのデータの型です。

MySQLには4種類のバイナリデータ型があり、各型は記憶可能なサイズ(最大長)が異なります。

バイナリデータ型
最大長
TINYBLOB 28-1
BLOB 216-1
MEDIUMBLOB 224-1
LONGBLOB 232-1

TINYBLOB

TINYBLOBは最大長が28-1のバイナリデータ型です。

基本構文

カラム名 TINYBLOB

サンプル

mysql> CREATE TABLE sample ( data TINYBLOB );
Query OK, 0 rows affected (0.02 sec)

mysql> DESC sample;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| data  | tinyblob | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
1 row in set (0.01 sec)

BLOB

BLOBは最大長が216-1のバイナリデータ型です。

基本構文

カラム名 BLOB

サンプル

mysql> CREATE TABLE sample ( data BLOB );
Query OK, 0 rows affected (0.01 sec)

mysql> DESC sample;
+-------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------+------+-----+---------+-------+
| data  | blob | YES  |     | NULL    |       |
+-------+------+------+-----+---------+-------+
1 row in set (0.00 sec)

MEDIUMBLOB

MEDIUMBLOBは最大長が224-1のバイナリデータ型です。

基本構文

カラム名 MEDIUMBLOB

サンプル

mysql> CREATE TABLE sample ( data MEDIUMBLOB );
Query OK, 0 rows affected (0.00 sec)

mysql> DESC sample;
+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| data  | mediumblob | YES  |     | NULL    |       |
+-------+------------+------+-----+---------+-------+
1 row in set (0.00 sec)

LONGBLOB

LONGBLOBは最大長が232-1のバイナリデータ型です。

基本構文

カラム名 LONGBLOB

サンプル

mysql> CREATE TABLE sample ( data LONGBLOB );
Query OK, 0 rows affected (0.01 sec)

mysql> DESC sample;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| data  | longblob | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
1 row in set (0.01 sec)

mysql>